
# array [3, 5, -4, 8, 11, 1, -1, 6]
# targetSum 10

# [3, 5, -4, 8, 11, 1, -1, 6]
# 数组做排序 array.sort()
# [-4, -1, 1, 3, 5, 6, 8, 11]
#   ^l
#                         ^r
# 只有当 l < r 的时候，执行下面的循环：
# while l < r:
# currentSum = array[l] + array[r]
# currentSum = -4 + 11 = 7
# if currentSum < targetSum:
#   向右移动 l
# elif currentSum > targetSum:
#   向左移动 r
# elif currentSum == targetSum:
#   返回 l 和 r 位置

def twoNumberSum(array, targetSum):
  array.sort()
  l = 0
  r = len(array) - 1

  while l < r:
    currentSum = array[l] + array[r]

    if currentSum == targetSum:
      return [array[l], array[r]]
    elif currentSum < targetSum:
      l += 1
    elif currentSum > targetSum:
      r -= 1

  return []


# 对于一个 Python 的脚本来说，它有一个叫做 入口点 的东西
if __name__ == "__main__":
  # 程序永远都会从这里的第一行开始执行
  print(twoNumberSum([3, 5, -4, 8, 11, 1, -1, 6], 10))

